MARX: Uncovering Class Hierarchies in C++ Programs
نویسندگان
چکیده
Reverse engineering of binary executables is a difficult task which gets more involved by the way compilers translate high-level concepts used in paradigms such as objectoriented programming into native code, as it is the case for C++. Such code is harder to grasp than, e. g., traditional procedural code, since it is generally more verbose and adds complexity through features such as polymorphism or inheritance. Hence, a deep understanding of interactions between instantiated objects, their corresponding classes, and the connection between classes would vastly reduce the time it takes an analyst to understand the application. The growth in complexity in contemporary C++ applications only amplifies the effect. In this paper, we introduce Marx, an analysis framework to reconstruct class hierarchies of C++ programs and resolve virtual callsites. We have evaluated the results on a diverse set of large, real-world applications. Our experimental results show that our approach achieves a high precision (93.2% of the hierarchies reconstructed accurately for Node.js, 88.4% for MySQL Server) while keeping analysis times practical. Furthermore, we show that, despite any imprecision in the analysis, the derived information can be reliably used in classic software security hardening applications without breaking programs. We showcase this property for two applications built on top of the output of our framework: vtable protection and type-safe object reuse. This demonstrates that, in addition to traditional reverse engineering applications, Marx can aid in implementing concrete, valuable tools e. g., in the domain of exploit mitigations.
منابع مشابه
The BIAS FREE Framework
Objective: To test the applicability of the BIAS FREE Framework in African settings. Participants: Researchers from the Tanzanian National Institute for Medical Research, university and community-based researchers from Tanzania, the Gambia and South Africa. Setting: National Institute for Medical Research, Dar es Salaam Tanzania. Intervention: An intensive two-day workshop to examine the applic...
متن کاملA Study on the Value Systems of the Fourth Region of the I.A.U
This paper aims to study and examine the value systems among the students region of Islamic Azad universities. The population includes all students in academic year 2008-9 among whom 400 ones were selected from 10 universities as a sample. The students' value hierarchies were examined using Alpourt 45- item questionnaire(A.V.L). Descriptive and t-inferential statistics and multivariate variance...
متن کاملEliminating Cycles in Composed Class Hierarchies
Multiple class hierarchies can be used each to represent a separate requirement or design concern. To yield a working system, these disparate hierarchies must be composed in a semantically meaningful way. However, cycles can arise in the composed inheritance graph that restrict the space of composable hierarchies. This work presents an approach to eliminating these cycles by means of separating...
متن کاملBase Class Injection
Class hierarchies, though theoretically reusable, have generally not seen much practical reuse in applications, due in part to the inflexibility of the inheritance relationship. We present a technique, base class injection, that allows the creation of generative class hierarchies that may be adapted by adding new methods, data members, and ancestor classes without modification to the class libr...
متن کاملHow to Design Class Hierarchies
We report on the experience of teaching introductory second semester computer science course on Fundamentals of Computer Science that uses our curriculum How to Design Class Hierarchies 1 and the ProfessorJ programming langugages implemented within the DrScheme programming environment. This comprehensive curriculum for an introductory course is focused on principled design of class based progra...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2017